#pragma once


// Copyright (c) 2010 Manuel Peinado Gallego <manuel.peinado@gmail.com>
// Distributed under the MIT license

// TranslationGizmo.h : interface of the TranslationGizmo class
//

#include "Gizmo.h"

class TranslationGizmo : public Gizmo
{
public:
    TranslationGizmo(GizmoManager* manager);

protected:

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

    void drawGizmoEnds(View3d * view, const Color colors[3], 
                       double size) const override;

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

    void onNodeDrag(const ScreenPoint & dragPoint, gx::Mat4 & localTransform,
                    gx::Mat4 & gizmoTransform, 
                    NodeEvent::Property& prop) override;

    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

    std::vector<gx::Vec3> getUncontrolledAxes() const;
};

